home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_pow.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  5KB  |  152 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import test.test_support as test
  5. import unittest
  6.  
  7. class PowTest(unittest.TestCase):
  8.     
  9.     def powtest(self, type):
  10.         if type != float:
  11.             for i in range(-1000, 1000):
  12.                 self.assertEquals(pow(type(i), 0), 1)
  13.                 self.assertEquals(pow(type(i), 1), type(i))
  14.                 self.assertEquals(pow(type(0), 1), type(0))
  15.                 self.assertEquals(pow(type(1), 1), type(1))
  16.             
  17.             for i in range(-100, 100):
  18.                 self.assertEquals(pow(type(i), 3), i * i * i)
  19.             
  20.             pow2 = 1
  21.             for i in range(0, 31):
  22.                 self.assertEquals(pow(2, i), pow2)
  23.                 if i != 30:
  24.                     pow2 = pow2 * 2
  25.                     continue
  26.             
  27.             for othertype in (int, long):
  28.                 for i in range(-10, 0) + range(1, 10):
  29.                     ii = type(i)
  30.                     for j in range(1, 11):
  31.                         jj = -othertype(j)
  32.                         pow(ii, jj)
  33.                     
  34.                 
  35.             
  36.         
  37.         for othertype in (int, long, float):
  38.             for i in range(1, 100):
  39.                 zero = type(0)
  40.                 exp = -othertype(i / 10.0)
  41.                 if exp == 0:
  42.                     continue
  43.                 
  44.                 self.assertRaises(ZeroDivisionError, pow, zero, exp)
  45.             
  46.         
  47.         (il, ih) = (-20, 20)
  48.         (jl, jh) = (-5, 5)
  49.         (kl, kh) = (-10, 10)
  50.         asseq = self.assertEqual
  51.         if type == float:
  52.             il = 1
  53.             asseq = self.assertAlmostEqual
  54.         elif type == int:
  55.             jl = 0
  56.         elif type == long:
  57.             (jl, jh) = (0, 15)
  58.         
  59.         for i in range(il, ih + 1):
  60.             for j in range(jl, jh + 1):
  61.                 for k in range(kl, kh + 1):
  62.                     if k != 0:
  63.                         if type == float or j < 0:
  64.                             self.assertRaises(TypeError, pow, type(i), j, k)
  65.                             continue
  66.                         
  67.                         asseq(pow(type(i), j, k), pow(type(i), j) % type(k))
  68.                         continue
  69.                 
  70.             
  71.         
  72.  
  73.     
  74.     def test_powint(self):
  75.         self.powtest(int)
  76.  
  77.     
  78.     def test_powlong(self):
  79.         self.powtest(long)
  80.  
  81.     
  82.     def test_powfloat(self):
  83.         self.powtest(float)
  84.  
  85.     
  86.     def test_other(self):
  87.         self.assertEquals(pow(3, 3) % 8, pow(3, 3, 8))
  88.         self.assertEquals(pow(3, 3) % -8, pow(3, 3, -8))
  89.         self.assertEquals(pow(3, 2) % -2, pow(3, 2, -2))
  90.         self.assertEquals(pow(-3, 3) % 8, pow(-3, 3, 8))
  91.         self.assertEquals(pow(-3, 3) % -8, pow(-3, 3, -8))
  92.         self.assertEquals(pow(5, 2) % -8, pow(5, 2, -8))
  93.         self.assertEquals(pow(0x3L, 0x3L) % 8, pow(0x3L, 0x3L, 8))
  94.         self.assertEquals(pow(0x3L, 0x3L) % -8, pow(0x3L, 0x3L, -8))
  95.         self.assertEquals(pow(0x3L, 2) % -2, pow(0x3L, 2, -2))
  96.         self.assertEquals(pow(-0x3L, 0x3L) % 8, pow(-0x3L, 0x3L, 8))
  97.         self.assertEquals(pow(-0x3L, 0x3L) % -8, pow(-0x3L, 0x3L, -8))
  98.         self.assertEquals(pow(0x5L, 2) % -8, pow(0x5L, 2, -8))
  99.         for i in range(-10, 11):
  100.             for j in range(0, 6):
  101.                 for k in range(-7, 11):
  102.                     if j >= 0 and k != 0:
  103.                         self.assertEquals(pow(i, j) % k, pow(i, j, k))
  104.                     
  105.                     if j >= 0 and k != 0:
  106.                         self.assertEquals(pow(long(i), j) % k, pow(long(i), j, k))
  107.                         continue
  108.                 
  109.             
  110.         
  111.  
  112.     
  113.     def test_bug643260(self):
  114.         
  115.         class TestRpow:
  116.             
  117.             def __rpow__(self, other):
  118.                 pass
  119.  
  120.  
  121.         None ** TestRpow()
  122.  
  123.     
  124.     def test_bug705231(self):
  125.         eq = self.assertEquals
  126.         a = -1.0
  127.         eq(pow(a, 1.2299999999999999e+167), 1.0)
  128.         eq(pow(a, -1.2299999999999999e+167), 1.0)
  129.         for b in range(-10, 11):
  130.             if not b & 1 or -1.0:
  131.                 pass
  132.             eq(pow(a, float(b)), 1.0)
  133.         
  134.         for n in range(0, 100):
  135.             fiveto = float(5 ** n)
  136.             if not fiveto % 2.0 or -1.0:
  137.                 pass
  138.             expected = 1.0
  139.             eq(pow(a, fiveto), expected)
  140.             eq(pow(a, -fiveto), expected)
  141.         
  142.         eq(expected, 1.0)
  143.  
  144.  
  145.  
  146. def test_main():
  147.     test.test_support.run_unittest(PowTest)
  148.  
  149. if __name__ == '__main__':
  150.     test_main()
  151.  
  152.